Maniac_91, область это хэндл а значит утекает
максимального количества областей ограничивается количеством оперативной памяти (до 2 гигов вроде) и максимальным количеством хэндлов (2 в 32 степени)
больше ни чем EnergyFrost:
Максимум что тебя ожидает- лаги, которые ты получишь из-за утечек, работая с этими областями. Так что старайся не наплодить утечек и все будет окей.
как правило работа со статичными областями не вызывает утечек (если их не копировать)
ограничений на декорации тоже нету к слову (если не юзать устаревший редактор)
Через txt команды заменить атаку на патруль, либо скрыть через мемхак, или делать юнит нетральный и дать ему канал приказа и будет иметь 12 способностей это смотря как вам удобно!
Если способности на прямую героя то можете настраивать порядок, а если через спелбук то нужно прелоад делать
Каждый новый хеш-тейбл инициализируется заново и остаётся висеть в оперативке до удаления из скрипта карты или до завершения игры (по крайней мере, мне так помнится). Операции выделения памяти довольно тяжёлые сами по себе, но куда значимее тот факт, что пересоздание и плождение таблиц - абсолютно бессмысленные операции по своей сути, они не несут вообще никакого положительного выхлопа.
Алексей777; WEU устарела и не работает с редакторами 1.21+. Карта сохранённая в 1.26 вряд-ли запустится в 1.21. Стоит бросить это дело. Если карта делается с нуля, то можно начать с 1.31, там есть возможность добавить 16 текстур ландшафта.
Вроде бы удалось решить проблему самостоятельно. Ошибка действительно была элементарной - идентификатор не устраивал введённый туда заглавный символ, а я не знал об этом. Простите за беспокойство.
Гуванч, когда игрок кликает на юнита проверяешь, что кликнутый юнит равен прошлому под индексом игрока и булевая под индексом игрока тоже равна да, меняешь юнита, иначе - показываешь информацию о юните, переменишь его, устанавливаешь булевую на да и запускаешь таймер, который выставит булевую обратно на нет
и прекрати полное сообщение пересылать, просто нажми на ник человека)
что не удаётся делать стандартным ИИ редактором пишется ручками тригерно...
сам определяешь условия, когда покупают кораблики, потом заставляешь их игнорировать стандартные ИИ команды (уже не помню как точно ф-ция называется) ну и перемещаешь сам...
)
можно ещё скачать код ИИ и импортировать его если скачаеш правельный то ИИ будет играть корабликами тоже)
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.
2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.
Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.
4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.
5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...
Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.
Это легко через Custom Value и переменние.
Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
По мемхаку 127b из всех кого я знаю, может помочь только quq_CCCP, но не уверен что он сможет в поиск оффсетов.
Есть способ попробовать по аналогии с 126 патчем искать оффсеты, и как научитесь то в 127 скорее всего так же будет.
В целом тот мемхак, который работает на 127b я видел только изменение брони и всё.. Я не сильно в этом уверен, но кажется, что ничего не выйдет путнего =(
Чтобы убрать неиспользуемые места, нужно либо их закрашивать декорациями по окраине или же если такая зона совсем большая, то просто заполнять черной границей можно, так тоже делается. Но я тебе советую все забыть и думать о другом. Скоро катаклизмы и ужас будут на земле. Кайся и молись Господу, ибо нужно бросать все мирское. Ад есть, ад реален. Нужно подумать о душе, это самое важное. Не шутка.
при событии
Юнит входит в область
зачитывается все кто туда заходит и если туда зайдет например 3 пехотинца то действия будут происходить 3 раза, если хочешь что бы при вхождении определенного юнита например паладина то в условии указываешь его
EnteringUnit() == 'Hpal"
Входящий юнит равно Паладин
далее действия
EviLInside, скоро (после конкурса) выложу отдельной системой там очень всё просто будет, контр С контр В, и вызываем когда нужно, но там много нюансов:
Каст тайм юниту по нулям в РО
Касттайм у способностей канальных в РО по нулям
Паузим юнита через новую паузу рефордж патча
Визуально получаем примерно вот это
Смотри туда где написано "подготовка", там 0.4 и 0.2 секунды, и правильный код который подгоняет анимации
Я эту систему уже улучшил и она более гладкая нужна вообще для других вещей, чаще для поддреживаемых заклинаний, например Бураноподобных
Получается примерно как в Доте2, надо бар только кастомизировать нормально.
Там и защиты то никакой нету, деоптимизатором прошёлся да и все, код редактируешь одтельно и вставляешь в уже подготовленную карту.
Вот опен карта, там все изи...
Diazon, можно даже проще сделать.
Создать способность на базе, к примеру, повышения защиты для предмета. Сделать +0 брони.
В триггере сделать так: Событие : юнит атакован Условие : на юните висит чума Действие : проверить, если нет способности +0 брони, то дать эту способность
И при смерти проверять имеет ли этот юнит способность +0 брони. Если да- то забрать её и создать труп.
Событие каждые 1 сек времени
пауза triggering unit
^ Не имеет смысла, здесь нет triggering unit, исправляй, сообщи об изменениях или неизменениях.
У тя там чета про убийства ещё, но спрятать юнит проиграв анимацию смерти не означает его убийство и из группы он не удаляется, если состоит. Так что имей в виду.
Да чего вы чушь на уши льете человеку. Ты должен дать юниту способность-пустышку, допустим - веерный бросок, но все параметры, типо урона и радиуса действия сотри, напиши описание. Маны способность не будет стоить, но в описании ты укажешь, сколько золота стоит улучшение. Итак, структура триггера на словах.
Событие:
-Юнит приводит способность в действие
Условие:
-Тип юнита: пехотинец (поищи, найдешь).
Действия:
Если применяющая способность равна Бандит, то
-Боевая единица: удалить применяющий юнит
-Боевая единица: создать бандита (позиция применяющий юнит, владелец применяющий юнит, и т.п.)
-Игрок: вычесть столько то золота
Иначе ничего не делать
Если применяющая способность равна Рыцарь, то
Делать тоже самое, только создай рыцаря, вычитай другое кол-во золота.
Иначе ничего не делать
P.S: можно использовать переменную типа юнит, однако желательно локальную, если ты знаешь, что это. Хотя я не могу быть уверен, что переменная как-то сильно поможет, можно обойтись и без нее.
Кстати, увидел, что человек выше написал функцию заменить юнита на другого, не помню ее, но может она и есть, тогда вместо удаления и добавления нового юнита лучше воспользоваться заменой.
у меня не улучшение как таковое а "Улучшается ДО" , никогда с этими улучшениями дела не имел, а как у других? Продавать юнита и при продаже подменять, чтобы проапгрейдить, мне кажется эта вещь должна нормально работать в варе же, неужели все тдшки и всякие петры на другой системе сделаны?
По своей проблеме разобрался, в РО карта путей стоял пункт "Нет" у башни 1, именно это и вызывало фатал при отмене улучшения
ну дай фриз юниту просто
но это не только убор скорости, это убор вообще всего, это по сути превращение в овоща со слюнями изо рта до момента, пока ты не заанпауишь юнита
если не покатит, то устраивай клоунаду
ройся в стандартных абилках
можешь вот как с яйцом предложили, можешь безэффектный баш швырять в лицо ублюдку (хотя это тоже фриз будет тащемта), можешь спавнить даммика с пасосом (одержимость баньши) и заставлять кастовать его 999 секунд и прогонять даммика, когда тебе нужно, можешь руты кипера бросать: тоже безэффектные + без дамага
хочется чтобы эта замена происходила не моментально, а через какое то время (на подобии обучения в зданиях),
Юзай однократный таймер (или же если таких юнитов будет очень много, то загони весь этот скот в группу отдельную и сделай пустышную абилку родную им с 10 ЛВЛами и, условно, каждую минуту каждому юниту из группы этой снижай лвл на 1 этой абилки-пустышки периодиком, а когда будет = 1, то морфи в нужного юнита), вейты - зло. Но минус в том, что если это мелкая темка, то на неё целый лишний триггер будет.
Ладно, раз менее костыльного решения проблемы нет, сделал дополнительное исследование (скрытое), которое триггерно изучается при изучении 3-го левела оригинального улучшения.
koloff, единственно верный вариант - перетащить весь импорт из карт в кампанию. Да, трудозатратно. Да, итоговый вес доставляет. Увы.
Представь длину списка файлов в импорте кампании под конец работы
Поэтому придется думать, что загружать, а что нет. По своему опыту знаю, что вычищать потом неиспользованные данные из импорта - сущий ад. Особенно если к каждой модели по 3-4 текстуры.
И да, музыка в mp3 формате тоже не дает грузится. Онли вав.
Если твоя цель - непрерывание приказа и сохранение инвиза при изучении способности - лови нажатие на спеллбук и переключайвыбор на дамми юнит, тоже со спеллбуком. Давай приказ на горячую клавишу спеллбука, чтобы сымитировать открывание меню у самого героя. После изучения скилла - возвращай героя в выбор.
тут правда есть запары - насколько я знаю ни нажатие на книгу ни нажатие возврата в неё не отлавливаются.
Значит делаем так:
Кнопка изучения способностей - пусть будет веерный бросок с временем подготовки 3 сек например, нам важно чтобы она не активировалась.
Юнит начинает направлять способность
способность = веерный бросок
пауза юнит
приказ юниту отставить
продолжить юнит
выбор - выбрать дамик
кнопка "отмена" у дамика - тоже должна быть способностью. При нажатии способности дамика возвращаем выбор на героя, можно при этом проверить оставшиеся очки способностей, чтобы не переключать, если они ещё не кончились.
Делать всё точно как я написал. Герой не будет выходить из невидимости, но к сожалению приказ всё же будет сбиваться.
Обхода я пока не вижу, остальные способы можно будет абузить.
Бтв, про сбор команды - для продвинутых сущностей нередко исправлять за другими оказывается тяжелее, чем делать самому, важно создать максимально комфортные условия для созидания, вот для чего деньги не лишние, а уж дело и самому можно делать.
И, да, тема-то не про то, надо это или не надо, а про то, как лучше это сделать, я про это и в стартовом сообщении написал.
Я на крайний сам вопрос по варианту 3 проверю и/или будет сделан выбор между третьим вариантом, вторым, каким-то ещё и отказом от Cooldown Reduction, но если кто поможет - спасибо.
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
через if else или свитч конструкцию, или написать свою функцию, которая будет принимать юнита, а возвращать string
типа такого:
function PrintType takes unit u returns string
local string s =""
if IsUnitType(u,UNIT_TYPE_ANCIENT) then
s="ANCIENT"
elseif IsUnitType(u,UNIT_TYPE_ATTACKS_FLYING) then
s="ATTACKS_FLYING"
endif
return s
endfunction
и добавляешь все свои типы через elseif которые хочешь поймать.... самый простейший вариант и 10 возможных =)
Kanteu, у тебя в описаниях стоит код AUdc, тебе нужно его заменить на равкод твоей способности. Чтобы его узнать, выдели способность и нажми Ctrl+D. Перед двоеточием будет равкод способности.
Это конкретно по ошибке... а вообще - не надо смотреть видео от этого человека, он тебя плохому научит... правда. А другим потом придётся тебя переучивать, если ты сам это дело не забросишь
можно либо заменять юнита, либо химичить с тексттагами(то есть сделать систему имен игровых обьектов на тексттагах), ещё есть функция для смены имени игрока
код
native SetPlayerName takes player whichPlayer, string name returns nothing
предметам имена изменять нельзя
способности могут быть с таким же успехом удалены, добавлены
этим
native UnitAddAbility takes unit whichUnit, integer abilityId returns boolean
native UnitRemoveAbility takes unit whichUnit, integer abilityId returns boolean
подробнее насчет предметов, думаю можно похимичить с кастом велью, устанавливать его
native S2I takes string s returns integer
native I2S takes integer i returns string
конвертировать, потом выводить строки на экран через
это
native DisplayTextToPlayer takes player toPlayer, real x, real y, string message returns nothing
с таким же успехом можно использовать хеш-таблицы, для аттача описания к чему-либо.
Ещё есть вариант, с описанием предметов и способностей в квестах.
В общем без гемора, и написания левых систем никак)
» WarCraft 3 / Бред
» WarCraft 3 / Максимальное количество
» WarCraft 3 / Добавление текстур
» WarCraft 3 / Наличие баффа
» WarCraft 3 / Фишки стандартных способностей
» WarCraft 3 / Ошибка War3 Model Editor, unknown group "MDVI"
» WarCraft 3 / Как в Warcraft писать на С#?
» Администрация XGM / Страница авторизации
» WarCraft 3 / Не заходит карта (невозможно открыть файл основной карты)
» WarCraft 3 / Footman Frenzy Infinite War 1.1.1
» WarCraft 3 / Способности и Animation - Cast Point
» WarCraft 3 / Перенос Jass способностей
» WarCraft 3 / Почему юнит умирает
» WarCraft 3 / Улучшение юнита
» WarCraft 3 / Карта на одиночное прохождение
» WarCraft 3 / Спелл-каст система
» WarCraft 3 / Как проверить класификацию юнита?
» WarCraft 3 / Ошибка в способности
» WarCraft 3 / Смена названия предмета